home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 March / EnigmA AMIGA RUN 05 (1996)(G.R. Edizioni)(IT)[!][issue 1996-03][Skylink CD IV].iso / earcd / program / prgrssbr.lha / BevelBar.s next >
Text File  |  1996-01-28  |  4KB  |  252 lines

  1. ;Bevel box Progress bar
  2.  
  3. ; A0 - Window
  4.  
  5. ; D0 - Bar start X coord
  6. ; D1 - Bar start Y coord
  7. ; D2 - Bar width
  8. ; D3 - Bar height
  9.  
  10. ;-----------------------------------------------------------------------
  11. BuildBar:    Move.W    D0,BarX
  12.     Move.W    D1,BarY
  13.  
  14.     Move.L    (wd_RPort,A0),WRPort
  15.  
  16.     Lea    (ProgressBox,PC),A0
  17.     Lea    (Coords,A0),A0
  18.  
  19.     Move.W    D2,(A0)+
  20.     Move.W    D3,(A0)+
  21.     Move.W    D2,(A0)+
  22.     Addq    #2,A0
  23.     Add.W    D2,(A0)+
  24.     Addq    #2,A0
  25.     Add.W    D2,(A0)+
  26.     Move.W    D3,(A0)+
  27.     Addq    #2,A0
  28.     Move.W    D3,(A0)+
  29.     Addq    #6,A0
  30.     Move.W    D3,(A0)+
  31.     Addq    #2,A0
  32.     Add.W    D3,(A0)+
  33.     Addq    #4,A0
  34.     Add.W    D2,(A0)+
  35.  
  36.     Addq    #2,D0
  37.     Move.W    D0,BoxX
  38.     Add.W    D2,D0
  39.     Subq    #4,D0
  40.     Move.W    D0,BoxX2
  41.  
  42.     Addq    #1,D1
  43.     Move.W    D1,BoxY
  44.     Add.W    D3,D1
  45.     Subq    #2,D1
  46.     Move.W    D1,BoxY2
  47.  
  48.     Clr.L    D0
  49.     Clr.L    D1
  50.  
  51.     Move.L    (WRPort,PC),A0
  52.     Lea    (ProgressBox,PC),A1
  53.     Move.W    (BarX,PC),D0
  54.     Move.W    (BarY,PC),D1
  55.     CALL    DrawBorder,INTUI
  56.  
  57. ;-----------------------------------------------------------------------
  58. ClearBar:    Move.W    (BoxX,PC),BarCount
  59.  
  60.     Clr.L    D1
  61.     Clr.L    D2
  62.     Clr.L    D3
  63.  
  64.     Move.L    (WRPort,PC),A1
  65.     Moveq    #0,D0        ;pen colour
  66.     CALL    SetAPen,GRAPH
  67.  
  68.     Move.L    (WRPort,PC),A0
  69.     Move.W    (BoxX,PC),D0
  70.     Move.W    (BoxY,PC),D1
  71.     Move.W    (BoxX2,PC),D2
  72.     Move.W    (BoxY2,PC),D3
  73.     CALL    RectFill
  74.     Rts
  75.  
  76. ;-----------------------------------------------------------------------
  77. UpdateBar:    Clr.L    D0
  78.     Clr.L    D1
  79.     Clr.L    D2
  80.     Clr.L    D3
  81.     Clr.L    D4
  82.     Clr.L    D5
  83.     Clr.L    D6
  84.     Clr.L    D7
  85.  
  86.     Move.L    (WRPort,PC),A3
  87.     Move.W    (BoxX,PC),D4
  88.     Move.W    (BoxX2,PC),D5
  89.     Move.W    (BoxY,PC),D6
  90.     Move.W    (BoxY2,PC),D7
  91.     Move.W    (BarCount,PC),D3
  92.  
  93.     Move.W    D5,D2
  94.     Subq    #1,D2
  95.     Cmp.W    D2,D3
  96.     Beq    .NoMore
  97.  
  98.     Move.W    D4,D2
  99.     Cmp.W    D2,D3
  100.     Bne.S    .NoStart
  101. ;----------------------
  102.     Moveq    #2,D0
  103.     Move.L    A3,A1
  104.     CALL    SetAPen,GRAPH
  105.  
  106.     Move.W    D3,D0
  107.     Move.W    D6,D1
  108.     Move.L    A3,A1
  109.     CALL    Move
  110.  
  111.     Move.W    D3,D0
  112.     Move.W    D7,D1
  113.     Move.L    A3,A1
  114.     CALL    Draw
  115. ;----------------------
  116.     Addq    #1,D3
  117.  
  118.     Move.W    D3,D0
  119.     Move.W    D6,D1
  120.     Move.L    A3,A1
  121.     CALL    Move
  122.  
  123.     Move.W    D3,D0
  124.     Move.W    D7,D1
  125.     Subq    #1,D1
  126.     Move.L    A3,A1
  127.     CALL    Draw
  128. ;----------------------
  129.     Moveq    #1,D0
  130.     CALL    SetAPen
  131.  
  132.     Move.W    D3,D0
  133.     Move.W    D7,D1
  134.     Move.L    A3,A1
  135.     CALL    WritePixel
  136. ;--------------------------------------------
  137. .NoStart    Addq    #1,D3
  138.     Moveq    #2,D0
  139.     Move.L    A3,A1
  140.     CALL    SetAPen,GRAPH
  141.  
  142.     Move.W    D3,D0
  143.     Move.W    D6,D1
  144.     Move.L    A3,A1
  145.     CALL    WritePixel
  146. ;----------------------
  147.     Moveq    #1,D0
  148.     Move.L    A3,A1
  149.     CALL    SetAPen
  150.  
  151.     Move.W    D3,D0
  152.     Move.W    D6,D1
  153.     Addq    #1,D1
  154.     Move.L    A3,A1
  155.     CALL    Move
  156.  
  157.     Move.W    D3,D0
  158.     Move.W    D7,D1
  159.     Move.L    A3,A1
  160.     CALL    Draw
  161. ;----------------------
  162.     Addq    #1,D3
  163.     Move.W    D3,D0
  164.     Move.W    D6,D1
  165.     Move.L    A3,A1
  166.     CALL    Move
  167.  
  168.     Move.W    D3,D0
  169.     Move.W    D7,D1
  170.     Move.L    A3,A1
  171.     CALL    Draw
  172. ;----------------------
  173.     Move.W    (BarCount,PC),D3
  174.     Move.W    D4,D2
  175.     Addq    #1,D2
  176.     Cmp.W    D2,D3
  177.     Ble.S    .NoClear
  178.  
  179.     Move.W    D3,D0
  180.     Move.W    D7,D1
  181.     Move.L    A3,A1
  182.     CALL    WritePixel
  183. ;----------------------
  184.     Moveq    #2,D0
  185.     Move.L    A3,A1
  186.     CALL    SetAPen
  187.  
  188.     Move.W    D3,D0
  189.     Move.W    D6,D1
  190.     Move.L    A3,A1
  191.     CALL    WritePixel
  192.  
  193.     Moveq    #0,D0
  194.     Move.L    A3,A1
  195.     CALL    SetAPen
  196.  
  197.     Move.W    D3,D0
  198.     Move.W    D6,D1
  199.     Addq    #1,D1
  200.     Move.L    A3,A1
  201.     CALL    Move
  202.  
  203.     Move.W    D3,D0
  204.     Move.W    D7,D1
  205.     Subq    #1,D1
  206.     Move.L    A3,A1
  207.     CALL    Draw
  208. ;----------------------
  209. .NoClear    Addq.W    #1,BarCount
  210. .NoMore    Rts
  211.  
  212. ;-----------------------------------------------------------------------
  213. BarCount:    Dc.W    0
  214.  
  215. BarX:    Dc.W    0
  216. BarY:    Dc.W    0
  217.  
  218. BoxX:    Dc.W    0
  219. BoxY:    Dc.W    0
  220.  
  221. BoxX2:    Dc.W    0
  222. BoxY2:    Dc.W    0
  223.  
  224. WRPort:    Dc.L    0
  225.  
  226. ;----------------------
  227. ProgressBox:    Dc.W    0,0
  228.     Dc.B    2,0,RP_JAM1
  229.     Dc.B    5
  230.     Dc.L    .IBorderVectors
  231.     Dc.L    .IBorderb
  232.  
  233. .IBorderb    Dc.W    0,0
  234.     Dc.B    1,0,RP_JAM1
  235.     Dc.B    5
  236.     Dc.L    .IBorderVectorsb
  237.     Dc.L    0
  238.  
  239. Coords    Equ    *-ProgressBox
  240. .IBorderVectors
  241.     Dc.W    0,0
  242.     Dc.W    0,0
  243.     Dc.W    -1,1
  244.     Dc.W    -1,0
  245.     Dc.W    0,0
  246. .IBorderVectorsb
  247.     Dc.W    0,0
  248.     Dc.W    0,0
  249.     Dc.W    1,-1
  250.     Dc.W    1,0
  251.     Dc.W    -1,0
  252.